package com.the_last.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.the_last.pojo.dto.UserDTO;
import com.the_last.pojo.po.User;
import com.the_last.pojo.vo.UserVO;
import com.the_last.utils.Result;

/**
 * 用户管理服务接口
 */
public interface IUserService extends IService<User> {
    
    /**
     * 分页查询用户列表
     * @param page 分页参数
     * @param userDTO 查询条件
     * @return 用户分页数据
     */
    Result<Page<UserVO>> getUserList(Page<User> page, UserDTO userDTO);
    
    /**
     * 新增用户
     * @param userDTO 用户信息
     * @return 操作结果
     */
    Result<Void> addUser(UserDTO userDTO);
    
    /**
     * 更新用户信息
     * @param userDTO 用户信息
     * @return 操作结果
     */
    Result<Void> updateUser(UserDTO userDTO);
    
    /**
     * 删除用户
     * @param userId 用户ID
     * @return 操作结果
     */
    Result<Void> deleteUser(Long userId);
    
    /**
     * 根据ID获取用户详情
     * @param userId 用户ID
     * @return 用户详情
     */
    Result<UserVO> getUserById(Long userId);
    
    /**
     * 批量更新用户状态
     * @param userIds 用户ID列表
     * @param status 状态
     * @return 操作结果
     */
    Result<Void> updateUserStatus(java.util.List<Long> userIds, Integer status);
    
    /**
     * 重置用户密码
     * @param userId 用户ID
     * @param newPassword 新密码
     * @return 操作结果
     */
    Result<Void> resetPassword(Long userId, String newPassword);
    
}